-
Notifications
You must be signed in to change notification settings - Fork 83
Fix multi-architecture image issues with Kind #362
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shmuelk please rebase
/lgtm
/approve
test/e2e/e2e_suite_test.go
Outdated
command = exec.Command("kind", "--name", "e2e-tests", "load", "docker-image", | ||
"ghcr.io/llm-d/llm-d-inference-scheduler:"+eppTag) | ||
session, err = gexec.Start(command, ginkgo.GinkgoWriter, ginkgo.GinkgoWriter) | ||
func kindLoad(image string) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: perhaps kindLoadImage
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
|
||
ginkgo.By(fmt.Sprintf("Loading %s into the cluster e2e-tests", image)) | ||
|
||
command := exec.Command("docker", "save", "--platform", "linux/"+runtime.GOARCH, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: perhaps define target := tempDir+"/docker.tar"
and then reuse in L134 and L139.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
Signed-off-by: Shmuel Kallner <[email protected]>
Signed-off-by: Shmuel Kallner <[email protected]>
Newer versions of Kind use containerd under the covers in the simulated K8S nodes.
There is a known incompatibility between Docker and containerd with respect to multi-platform images. Docker doesn't pull al of the layers of such images. It only pulls the layers that are applicable to the platform (i.e. AMD64 or ARM64) in question. Containerd then issues an error about missing layers.
See kubernetes-sigs/kind#3795 for more details.
This PR replaces the command
kind load docker-image...
withdocker save
andkind load image-archive
. The docker save is done specifying the local platform, to only save for the appropriate platform.